home *** CD-ROM | disk | FTP | other *** search
/ MacTech 1 to 12 / MacTech-vol-1-12.toast / Source / MacTech® Magazine / Volume 09 - 1993 / 09.10 Oct 93 / Fixed-Point Math / matrix.cp < prev    next >
Encoding:
Text File  |  1993-07-23  |  815 b   |  47 lines  |  [TEXT/KAHL]

  1. /***************************************
  2. * matrix.cp
  3. * matrix template class implementations
  4. ***************************************/
  5.  
  6. #include "matrix.h"
  7. #include <iomanip.h>
  8.  
  9. template <class Number>
  10. matrix<Number>::matrix()
  11. {
  12.     int i,j;
  13.     Number zero(0); // initialize any type of Number to zero
  14.     
  15.     for(i=0;i<4;i++)
  16.         for(j=0;j<4;j++)
  17.             m[i][j] = zero;
  18. }
  19.  
  20. template <class Number>
  21. matrix<Number> matrix<Number>::operator*(const matrix<Number> mat)
  22. {
  23.     matrix<Number> result;
  24.     int i,j,k;
  25.     
  26.     for(i=0;i<4;i++)
  27.         for(j=0;j<4;j++)
  28.             for(k=0;k<4;k++)
  29.                 result.m[i][j] += m[i][k] * mat.m[k][j];
  30.     return result;
  31. }
  32.  
  33. template <class Number>
  34. ostream& operator<<(ostream& os, const matrix<Number>& mat)
  35. {
  36.     int i,j;
  37.     
  38.     for(i=0;i<4;i++)
  39.         {
  40.             for(j=0;j<4;j++)
  41.                 os << setw(10) << mat(i,j);
  42.             os << endl;
  43.         }
  44.     return os;
  45. }
  46.  
  47.